As is known, in digital communication, a bit in a bit sequence transmitted from a transmitter may be inverted during transmission. This phenomenon is called a code error (bit error). Various factors that cause the code error cannot be completely eliminated from communication paths. Therefore, to improve the reliability of the digital communication, the transmitter and a receiver include an error correction encoder and an error correction decoder, respectively. The error correction encoder generates an error correction code for allowing detection and correction of the code error. As a result, the error correction decoder can increase the possibility of correcting the code error when there is a code error in the error-correction-encoded bit sequence. The error correction code can be used not only in digital communication between the transmitter and the receiver, but also in various digital information processing apparatuses, such as a recording apparatus and a reproduction apparatus of digital data.
An example of the error correction encoder is a turbo encoder. In turbo encoding, systematic codes including a systematic bit sequence, a first check bit sequence, and a second check bit sequence are generated. Here, the systematic bit sequence denotes an input bit sequence. The first check bit sequence is, for example, a recursive convolutional code generated by adding a bit sequence input in the past to the input bit sequence. The second check bit sequence is, for example, a recursive convolutional code generated by adding a bit sequence obtained through interleaving in the past to a bit sequence obtained by interleaving the input bit sequence. The interleaving denotes shuffling or rearranging the bit sequences in a predetermined procedure while a data rate is maintained.
An example of the error correction decoder is a turbo decoder. In turbo decoding, the reliability of the fact that a bit is “1” or “0” is increased through turbo processing for each bit in a systematic bit sequence to thereby determine a systematic bit sequence without a code error. In the turbo processing, for example, two element decoders repeat soft decision decoding while supplying extrinsic information, namely, increments of reliability to each other. A known encoding/decoding system that adopts a procedure of estimating a transmission bit sequence from a received bit sequence by repeating the soft decision decoding is, for example, a decoding system of low density parity check code. The low density parity check code is also called LDPC.